package com.shared.model;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Embedded;
import javax.persistence.Id;

import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity;
import com.shared.data.IData;
import com.shared.utilitaire.Adresse;

@Entity
public class Compagnie implements IData {
	
	@Id private Long key;
	private String nom ;
	@Embedded private Adresse adresse1 ;
	@Embedded private Adresse adresse2 ;
	private String numeroTel ;
	private String numeroFax ;
	private List<Key<Interlocuteur>> listeKeyInterlocteurs = new ArrayList<Key<Interlocuteur>>();
	
	
	public Compagnie() {
		// TODO Auto-generated constructor stub
	}
	
	public Compagnie(String n, Adresse ad1, Adresse ad2, String numTel, String numFax, List<Key<Interlocuteur>> inter) {
		nom = n ;
		adresse1 = ad1 ;
		adresse2 = ad2 ;		
		numeroFax = numFax ;
		numeroTel = numTel ;
		setListeKeyInterlocteurs(inter);		
	}
	
	public Compagnie(String n, Adresse ad1, Adresse ad2,String numTel, String numFax) {
		nom = n ;
		adresse1 = ad1 ;
		adresse2 = ad2 ;		
		numeroFax = numFax ;
		numeroTel = numTel ;			
	}
	
	public Adresse getAdresse1() {
		return adresse1;
	}
	
	public Adresse getAdresse2() {
		return adresse2;
	}
	
	
	public String getNom() {
		return nom;
	}
	
	public String getNumeroFax() {
		return numeroFax;
	}
	
	public String getNumeroTel() {
		return numeroTel;
	}
	
	
	
	public void setAdresse1(Adresse adresse1) {
		this.adresse1 = adresse1;
	}
	
	
	public void setAdresse2(Adresse adresse2) {
		this.adresse2 = adresse2;
	}
	
	/**
	 * 
	 * @param interlocuteur
	 */
	public void addInterlocuteur(Interlocuteur interlocuteur){
		this.listeKeyInterlocteurs.add(new Key<Interlocuteur>(Interlocuteur.class, interlocuteur.getKey()));
	}
	public void setInterlocuteur(List<Interlocuteur>  interlocuteur) {
		for(Interlocuteur i : interlocuteur) addInterlocuteur(i);
	}
	
	public void setNom(String nom) {
		this.nom = nom;
	}
	
	public void setNumeroFax(String numeroFax) {
		this.numeroFax = numeroFax;
	}
	
	public void setNumeroTel(String numeroTel) {
		this.numeroTel = numeroTel;
	}
	

	/**
	 * @param key the key to set
	 */
	public void setKey(Long key) {
		this.key = key;
	}

	/**
	 * @return the key
	 */
	public Long getKey() {
		return key;
	}

	/**
	 * @param listeKeyInterlocteurs the listeKeyInterlocteurs to set
	 */
	public void setListeKeyInterlocteurs(List<Key<Interlocuteur>> listeKeyInterlocteurs) {
		this.listeKeyInterlocteurs = listeKeyInterlocteurs;
	}

	/**
	 * @return the listeKeyInterlocteurs
	 */
	public List<Key<Interlocuteur>> getListeKeyInterlocteurs() {
		return listeKeyInterlocteurs;
	}
	
	
	
	
	
}
